package com.example.work.controller;

import com.example.work.entity.Dbhosp;
import com.example.work.entity.TbCheckGrade;
import com.example.work.service.ICategoryService;
import com.example.work.service.IGradeService;
import com.example.work.utils.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
 * @author: javaLiuwb
 * @date: 2024-11-25 19:30
 * @description:
 */
@RestController
@RequestMapping("/grade")
public class GradeController {

    @Autowired
    private IGradeService gradeService;



    @RequestMapping("/list")
    public R list(@RequestParam(value = "current", defaultValue = "1") int page,
                  @RequestParam(value = "size", defaultValue = "10") int size) {
        // 创建分页对象
        Page<TbCheckGrade> pageRequest = new Page<>(page, size);
        // 分页查询
        IPage<TbCheckGrade> gradePage = gradeService.page(pageRequest);
        // 封装返回结果
        Map<String, Object> map = new HashMap<>();
        map.put("records", gradePage.getRecords()); // 当前页的数据
        map.put("total", gradePage.getTotal());     // 总记录数
        map.put("current", gradePage.getCurrent()); // 当前页码
        map.put("size", gradePage.getSize());       // 每页大小
        return R.ok(map);
    }

    //添加
    @RequestMapping("/save")
    public R save(@RequestBody TbCheckGrade tbCheckGrade){
        //System.out.println(dbCheckCategory.toString());

        if(tbCheckGrade.getId()==null){
            Date date = new Date();
            tbCheckGrade.setCreateTime(date);
            tbCheckGrade.setUpdateTime(date);
            gradeService.save(tbCheckGrade);
        }else {
            Date date = new Date();
            tbCheckGrade.setUpdateTime(date);
            gradeService.saveOrUpdate(tbCheckGrade);
        }
        return R.ok();
    }

    //添加
    @RequestMapping("/delete/{id}")
    public R delete(@PathVariable(value = "id") String id){
        //System.out.println(dbCheckCategory.toString());
        gradeService.removeById(id);
        return R.ok();
    }
    @PutMapping("/update/{id}")
    public R updateHospById(
            @PathVariable("id") String id, // 使用 @PathVariable 动态路径参数
            @RequestBody TbCheckGrade tbCheckGrade // 使用 @RequestBody 接收 JSON 数据
    )
    {
        // 打印接收到的 ID
        System.out.println("接收到的grade ID：" + id);
        // 检查路径中的 grade 是否为空
        if (id == null || id.isEmpty()) {
            return R.error("grade ID 不能为空");
        }
        // 检查请求体中的数据是否完整
        if (tbCheckGrade == null) {
            return R.error("请求体不能为空");
        }
        // 设置 tbCheckGrade 对象的 id（确保请求体中的 id 与路径参数一致）
        tbCheckGrade.setId(id);
        // 调用服务层更新方法
        boolean isUpdated = gradeService.updateGradeById(tbCheckGrade);
        // 返回操作结果
        if (isUpdated) {
            return R.ok("修改成功");
        } else {
            return R.error("修改失败");
        }
    }
}
